the specification of software on our PC
the Windows system

the applications
- ZEN black: ZEISS microscope application
- imgeJ/Fiji:open source application to process image
- Spyder: IDE for python code
- sikulix: automation platform
- Google Chrome: the Gmail web-portal is open and used by siulix to send messages if necessary.

step-by-step tutorial
1> prepare sample slide
prepare the cell or tissue culture on a coverslip.
mount it with 1 μM biotin-benzophenone in 50:50 DMSO:water and store in dark.
- the biotin-benzophenone is photo-active under two-photon excitation at 720 nm
2> photo-labeling on microscope
2.1 load the slide on microscope (we use zeiss LSM 880) and use 25x oil immersion lens.
2.2 start the applications on Windows:
2.3 setup the tiles
the workflow
please check the video
2.3.1 find the boundary points along the coverslip.
move along the edge of the coverslip. Stop at a location and manually focus on the sample.
add the location to the ‘Positions’ Panel.
keep going until 6~8 locations are collected.
save the boundary position list.
2.3.2. calculate the tiles within the shape refined in the boundary points.
call the script “tileScanConvexHullz_split.py” in Spyder
line 12: enter the path of the pre-saved “.pos” file of the boundary list
line 14: enter value of the tile size, always NOT smaller than of the scale of field of view. i.e. 25x lens on our LSM 880, the size of each field is 340.1 μm.
line 16: the maximum numbers of tiles can be written into a position file.
ZEN black may freeze when a positioin file contains more than 120 positions is loaded.
run the script “tileScanConvexHullz_split.py” after the parameters are entered.
position files are generated: “tilePos-1.pos”, “tilePos-2.pos”, “tilePos-3.pos”,…
the position file is loaded into Zen black in the “Positions” panel

2.3.3. setup the imaging parameters
load a position file, move to a tile position, then tune the laser powevr, receiver gain, and etc. to get an image with decent signal.
test 1~2 tiles. Then the imaging parameters are settled.
warning: close all active images in Zen black after the test.
2.3.4. call imageJ/Fiji
install the Fiji macro used for mask generation
“self.ijm” and “donut.ijm” are provided

the imageJ macro: “donut.ijm” is loaded

test processing images acquired in step 2.3.3. make sure the ijm macro works properly.
warning: after test, close all active images and windows by calling the macro “clearWindows”.
2.4 automation with the sikulix code
- ### 2.4.1. set up the input parameters of sikulix code
- ### call the script "stp_call_oneChannel.sikuli"
- ### enter the parameters obtained in step 2.3.2 to the script.
- ## check the details in "instruction_of_sikuli_code.html"
<img src="./tutorial/sikuli.jpg" width="90%" />
- ### 2.4.2. run the sentinel script "checkFreezingCode.py" in Spyder
- #### this script will monitor the sikuli and report a frozen status if there is.
- #### hide the window of Spyder when the run starts.
<img src="./tutorial/sc3.jpg" width="90%" />
- #### zoom in at the GUI of Spyder
<img src="./tutorial/py2.jpg" width="100%" />
- ### 2.4.3. load the STOMP macro if not yet.
<img src="./tutorial/stpmacro.jpg" width="100%" />
- ### 2.4.4. check if the web-portal of Gmail is open in Chrome
- ### hide Chrome GUI before running sikulix
2.5 run the sikulix code
please check this video of automation

once the run starts, its window will disappear.

Plus, its icon cannot be found at the task bar at the bottom of Windows desktop.

the sikulix IDE will re-appear when it is interrupted and forced to quit.
trouble shooting
if sikulix is forced to stop, try to fix the problem by learning the error message.
since other exceptions could happen, the current code is not expected to barricade all the exceptions.
check the exceptions that has been dealt with in “instruction_of_sikuli_code.html”
resume the sikulix run
go through the step 2.3 to 2.4 to ensure it is ready for sikulix automation.
set the tile where the automation should be resumed in “stp_call_oneChannel.sikuli”
For instance, resume STOMP from position file #2 and tile position #51

3> count the pixels STOMPed
3.1 the images and log files are organized into the folders by the order of the position files generated at the step 2.3.2.
3.2. run the python code “TotalPixels_allLogs.py” in Spyder.
line 15: enter the path of the parent folder generated at step 2.4.1.

the script will iterate through all its subfolder and collect and summarize the total pixels.

3.3 Typically, labeling 4~5 million pixel with mask resoution: 512x512 pixel-by-pixel under 25x lens should render sufficient proteins for one sample for Mass Spec submission.
four days per sample on the microscope is required.